Transfer data between the Arrow memory format and JSON line-delimited records.
See the module level documentation for the
[reader
] and [writer
] for usage examples.
Binary Data
As per RFC7159 JSON cannot encode arbitrary binary data. A common approach to workaround this is to use a binary-to-text encoding scheme, such as base64, to encode the input data and then decode it on output.
# use Cursor;
# use Arc;
# use ;
# use AsArray;
# use ;
# use ;
#
// The data we want to write
let input = from;
// Base64 encode it to a string
let encoded: StringArray = b64_encode;
// Write the StringArray to JSON
let batch = try_from_iter.unwrap;
let mut buf = Vec with_capacity;
let mut writer = new;
writer.write.unwrap;
writer.finish.unwrap;
// Read the JSON data
let cursor = new;
let mut reader = new.build.unwrap;
let batch = reader.next.unwrap.unwrap;
// Reverse the base64 encoding
let col: BinaryArray = batch.column..clone.into;
let output = b64_decode.unwrap;
assert_eq!;